package models.admin;

import java.util.List;

import javax.persistence.Entity;
import javax.persistence.OneToMany;

import play.db.jpa.Model;
import utils.geko.crud.CRUD;
import utils.geko.crud.CRUD.Order;
import utils.geko.crud.CRUDField;

@Entity
@CRUD(defaultSortName="nombre", defaultSortOrder=Order.ASC, isSearchable=true)
public class Usuario extends Model {

	@CRUDField(searchable=true,sortable=true)
	private String nombre;
	@CRUDField(searchable=true,sortable=true)
	private String email;
	@CRUDField(searchable=true,sortable=true)
	private String celular;
	@CRUDField(searchable=true,sortable=true)
	private String direccion;
	private String password;
	private boolean esAdmin;
	@OneToMany(mappedBy="usuario")
	private List<Orden> ordenes;
	
	public Usuario() {
    }
	public Usuario(String email, String password, String nombre, 
			String direccion, String celular) {
        this.email = email;
        this.password = password;
        this.direccion = direccion;
        this.celular = celular;
        this.nombre = nombre;
        this.esAdmin = false ;
    }
	
	public static Usuario connect(String email, String password) {
	    return find("byEmailAndPassword", email, password).first();
	}
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getCelular() {
		return celular;
	}
	public void setCelular(String celular) {
		this.celular = celular;
	}
	public String getDireccion() {
		return direccion;
	}
	public void setDireccion(String direccion) {
		this.direccion = direccion;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public boolean isEsAdmin() {
		return esAdmin;
	}
	public void setEsAdmin(boolean esAdmin) {
		this.esAdmin = esAdmin;
	}
	public List<Orden> getOrdenes() {
		return ordenes;
	}
	public void setOrdenes(List<Orden> ordenes) {
		this.ordenes = ordenes;
	}
	
}
